/*
 * SalaDePersonas.h
 *
 *  Created on: 05/07/2014
 *      Author: migue
 */

#ifndef SALADEPERSONAS_H_
#define SALADEPERSONAS_H_

#include "iMemComp.h"
#include "../interfaces/iSalaBUS.h"
#include "../defines.h"


class SalaDePersonas : public iSalaBUS {
public:
	SalaDePersonas(int numSala, int lugar);

	SalaDePersonas(int numSala, Tipos::LugarDeSala lugar, bool crear = true);

	virtual bool hayPersonas();

	virtual void reservarLugar(int idPersona);

	virtual void colocarEnReserva(int idPersona);

	virtual int verProximaPersona();

	virtual void sacarPersona(int idPersona);

	virtual int cantidadDePersonas();

	virtual bool salaLlena();



	int numeroDeSala();

	Tipos::LugarDeSala lugar();

	virtual Tipos::EstadoBUS estadoBUS();


	virtual void BUSsubiendoPersonas();

	virtual void BUSDespierto();

	virtual void BUSbajandoPersonas();

	virtual void BUSDormido();



	virtual void inicializar();

	virtual void destruir();

	virtual ~SalaDePersonas();

private:

	void estadoBUS(Tipos::EstadoBUS estado);

	iMemComp *_lugares;

	int _numSala;
	Tipos::LugarDeSala _lugar;

	int _posEstadoBUS;
	int _posCantPersonas;
	int _posLugares;
	int _posReservas;
};

#endif /* SALADEPERSONAS_H_ */
